import request from '@/utils/request'

export default class User {
  // 注册接口
  // 经验： 形参中的{ userName, trueName, password }是对象解构赋值
  // 经验： post内的{ userName, trueName, password } 是一种对象字面量的写法，其中属性名和属性值的名称相同。在这种情况下，可以省略属性的名称，只写属性值即可
  static userRegisterService = ({ userName, trueName, password }: any) =>
    request.post('/account/register', { userName, trueName, password })

  // 登录接口
  static userLoginService = ({ mobile, password }: any) =>
    request.post('/sys/login', { mobile, password })

  // 获取用户基本信息
  static userGetInfoService = () => request.get('/sys/profile')

  // 更新用户基本信息
  static userUpdateInfoService = ({ trueName, password, status }: any) =>
    request.put('/account/updateUser', { trueName, password, status })

  // 更新用户头像
  static userUpdateAvatarService = (picture: any) =>
    request.patch('/account/updateAvatar', { picture })

  // 更新用户密码
  static userUpdatePasswordService = ({ oldPassword, newPassword }: any) =>
    request.put('/sys/user/updatePass', {
      oldPassword,
      newPassword
    })

  // 退出登录
  static userLayoutService = (id: any) =>
    request.delete('/account/logout', { params: { id } })
}
